//
// Created by 29245 on 2025/8/25.
//

#include "uart.h"
#include "usart.h"
#include "stdio.h"
#include "action.h"
#include "string.h"

uint8_t RxTemp = 0;
char command[20] = {0};
uint8_t cmd_index = 0;

#define USART_DEBUG huart1

#ifdef __GNUC__
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif

// 修复函数定义结构 - 使用阻塞发送
__attribute__((used)) int _write(int file, char *ptr, int len)
{
    // 使用阻塞方式发送数据
    HAL_UART_Transmit(&USART_DEBUG, (uint8_t *)ptr, len, HAL_MAX_DELAY);
    return len;
}

// 修正函数实现 - 使用阻塞发送
#ifdef __GNUC__
int __io_putchar(int ch)
#else
int fputc(int ch, FILE *f)
#endif
{
    // 使用阻塞方式发送单个字符
    HAL_UART_Transmit(&USART_DEBUG, (uint8_t *)&ch, 1, HAL_MAX_DELAY);
    return ch;
}

/* 初始化串口1 */
void Bsp_UART1_Init(void)
{
    HAL_UART_Receive_IT(&huart1, (uint8_t *)&RxTemp, 1);
}
